\documentclass[10pt,a4paper]{article}
%\usepackage{zh_CN-Adobefonts_external}
\usepackage{xeCJK}
\usepackage{amsmath, amsthm}
\usepackage{listings,xcolor}
\usepackage{geometry} % 设置页边距
\usepackage{fontspec}
\usepackage{graphicx}
\usepackage[colorlinks]{hyperref}
\usepackage{setspace}
\usepackage{fancyhdr} % 自定义页眉页脚


\setsansfont{Consolas} % 设置英文字体
\setmonofont[Mapping={}]{Consolas} % 英文引号之类的正常显示，相当于设置英文字体

\linespread{1.2}

\title{Template For ICPC}
\author{ChenJr @ GDUT}
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\pagestyle{fancy}

\lhead{\CJKfamily{kai} GuangDong University of Technology} %以下分别为左中右的页眉和页脚
\chead{}

\rhead{\CJKfamily{kai} 第 \thepage 页}
\lfoot{} 
\cfoot{\thepage}
\rfoot{}
\renewcommand{\headrulewidth}{0.4pt} 
\renewcommand{\footrulewidth}{0.4pt}
%\geometry{left=2.5cm,right=3cm,top=2.5cm,bottom=2.5cm} % 页边距
\geometry{left=3.18cm,right=3.18cm,top=2.54cm,bottom=2.54cm}
\setlength{\columnsep}{30pt}

\makeatletter

\makeatother



\lstset{
    language    = c++,
    numbers     = left,
    numberstyle={                               % 设置行号格式
        \small
        \color{black}
        \fontspec{Consolas}
    },
	commentstyle = \color[RGB]{0,128,0}\bfseries, %代码注释的颜色
	keywordstyle={                              % 设置关键字格式
        \color[RGB]{40,40,255}
        \fontspec{Consolas Bold}
        \bfseries
    },
	stringstyle={                               % 设置字符串格式
        \color[RGB]{128,0,0}
        \fontspec{Consolas}
        \bfseries
    },
	basicstyle={                                % 设置代码格式
        \fontspec{Consolas}
        \small\ttfamily
    },
	emphstyle=\color[RGB]{112,64,160},          % 设置强调字格式
    breaklines=true,                            % 设置自动换行
    tabsize     = 4,
    frame       = single,%主题
    columns     = fullflexible,
    rulesepcolor = \color{red!20!green!20!blue!20}, %设置边框的颜色
    showstringspaces = false, %不显示代码字符串中间的空格标记
	escapeinside={\%*}{*)},
}

\begin{document}
\title{ICPC Templates For Grooming}
\author {ChenJr}
\maketitle
\tableofcontents
\newpage
\section{模拟}
\subsection{进制转换}
\lstinputlisting{模拟/进制转换.tex}
\section{搜索}
\subsection{总结}
\lstinputlisting{搜索/总结.tex}
\subsection{三分}
\subsubsection{sf}
\lstinputlisting{搜索/三分/sf.tex}
\subsubsection{求极大值}
\lstinputlisting{搜索/三分/求极大值.tex}
\subsection{折半搜索}
\subsubsection{zb}
\lstinputlisting{搜索/折半搜索/zb.tex}
\subsection{模拟退火}
\subsubsection{mnth}
\lstinputlisting{搜索/模拟退火/mnth.tex}
\section{数论}
\subsection{小经验}
\lstinputlisting{数论/小经验.tex}
\subsection{FWT}
\subsubsection{序列中选 1,2,...,n 个数的最大异或和分别为多少}
\lstinputlisting{数论/FWT/序列中选 1,2,...,n 个数的最大异或和分别为多少.tex}
\subsection{Min25筛}
\subsubsection{快速阶层取模}
\lstinputlisting{数论/Min25筛/快速阶层取模.tex}
\subsection{Pohlig-Hellman}
\subsubsection{总结}
\lstinputlisting{数论/Pohlig-Hellman/总结.tex}
\subsubsection{Pohlig-Hellman}
\lstinputlisting{数论/Pohlig-Hellman/Pohlig-Hellman.tex}
\subsection{二次剩余}
\subsubsection{总结}
\lstinputlisting{数论/二次剩余/总结.tex}
\subsubsection{2019牛客多校B}
\lstinputlisting{数论/二次剩余/2019牛客多校B.tex}
\subsubsection{一元二次方程判断是否有解}
\lstinputlisting{数论/二次剩余/一元二次方程判断是否有解.tex}
\subsubsection{求所有解}
\lstinputlisting{数论/二次剩余/求所有解.tex}
\subsection{反素数}
\subsubsection{总结}
\lstinputlisting{数论/反素数/总结.tex}
\subsubsection{求不超过n的最小反素数}
\lstinputlisting{数论/反素数/求不超过n的最小反素数.tex}
\subsubsection{求约数个数为n最小反素数}
\lstinputlisting{数论/反素数/求约数个数为n最小反素数.tex}
\subsection{各种筛}
\subsubsection{x的质因子个数}
\lstinputlisting{数论/各种筛/x的质因子个数.tex}
\subsubsection{矩阵的lcm}
\lstinputlisting{数论/各种筛/矩阵的lcm.tex}
\subsubsection{素数+欧拉函数+最小质因子}
\lstinputlisting{数论/各种筛/素数+欧拉函数+最小质因子.tex}
\subsection{康托展开}
\subsubsection{康托展开}
\lstinputlisting{数论/康托展开/康托展开.tex}
\subsubsection{康托逆展开}
\lstinputlisting{数论/康托展开/康托逆展开.tex}
\subsection{扩展欧几里得}
\subsubsection{exgcd}
\lstinputlisting{数论/扩展欧几里得/exgcd.tex}
\subsubsection{求同余方程}
\lstinputlisting{数论/扩展欧几里得/求同余方程.tex}
\subsection{离散数对}
\subsubsection{BSGS}
\lstinputlisting{数论/离散数对/BSGS.tex}
\subsubsection{EX_BSGS}
\lstinputlisting{数论/离散数对/EX_BSGS.tex}
\subsection{欧拉函数}
\subsubsection{欧拉函数性质}
\lstinputlisting{数论/欧拉函数/欧拉函数性质.tex}
\subsubsection{sqrt(N)}
\lstinputlisting{数论/欧拉函数/sqrt(N).tex}
\subsubsection{欧拉筛}
\lstinputlisting{数论/欧拉函数/欧拉筛.tex}
\subsubsection{N^(0.25)+1e18}
\lstinputlisting{数论/欧拉函数/N^(0.25)+1e18.tex}
\subsection{欧拉降幂}
\subsection{排列组合}
\subsubsection{总结}
\lstinputlisting{数论/排列组合/总结.tex}
\subsubsection{排列组合公式}
\lstinputlisting{数论/排列组合/排列组合公式.tex}
\subsubsection{暴力求法}
\lstinputlisting{数论/排列组合/暴力求法.tex}
\subsubsection{线性(N要小于p)}
\lstinputlisting{数论/排列组合/线性(N要小于p).tex}
\subsubsection{扩展卢卡斯}
\lstinputlisting{数论/排列组合/扩展卢卡斯.tex}
\subsubsection{错排 <错排.tex}
\subsection{裴蜀定理}
\subsubsection{总结}
\lstinputlisting{数论/裴蜀定理/总结.tex}
\subsection{唯一分解定理+约数定理}
\subsubsection{总结}
\lstinputlisting{数论/唯一分解定理+约数定理/总结.tex}
\subsubsection{约数之和}
\lstinputlisting{数论/唯一分解定理+约数定理/约数之和.tex}
\subsubsection{求二元倒数方程}
\lstinputlisting{数论/唯一分解定理+约数定理/求二元倒数方程.tex}
\subsection{线性基}
\subsubsection{总结}
\lstinputlisting{数论/线性基/总结.tex}
\subsubsection{验证存在性+最小值+最大值+第K小}
\lstinputlisting{数论/线性基/验证存在性+最小值+最大值+第K小.tex}
\subsubsection{最大异或和路径}
\lstinputlisting{数论/线性基/最大异或和路径.tex}
\subsubsection{区间询问异或和或上K的最大值}
\lstinputlisting{数论/线性基/区间询问异或和或上K的最大值.tex}
\subsection{整除分块}
\subsubsection{总结}
\lstinputlisting{数论/整除分块/总结.tex}
\subsubsection{余数求和}
\lstinputlisting{数论/整除分块/余数求和.tex}
\subsubsection{有限小数对数}
\lstinputlisting{数论/整除分块/有限小数对数.tex}
\subsection{中国剩余定理}
\subsubsection{总结}
\lstinputlisting{数论/中国剩余定理/总结.tex}
\subsubsection{中国剩余定理}
\lstinputlisting{数论/中国剩余定理/中国剩余定理.tex}
\subsubsection{扩展中国剩余定理}
\lstinputlisting{数论/中国剩余定理/扩展中国剩余定理.tex}
\section{图论}
\subsection{小经验}
\lstinputlisting{图论/小经验}
\subsection{K短路}
\subsubsection{Astar}
\lstinputlisting{图论/K短路/Astar.tex}
\subsection{K级祖先}
\subsubsection{总结}
\lstinputlisting{图论/K级祖先/总结.tex}
\subsubsection{倍增法}
\lstinputlisting{图论/K级祖先/倍增法.tex}
\subsubsection{重链剖分}
\lstinputlisting{图论/K级祖先/重链剖分.tex}
\subsubsection{长链剖分}
\lstinputlisting{图论/K级祖先/长链剖分.tex}
\subsection{LCA}
\subsubsection{tarjan离线}
\lstinputlisting{图论/LCA/tarjan离线.tex}
\subsubsection{倍增法}
\lstinputlisting{图论/LCA/倍增法.tex}
\subsubsection{树剖法}
\lstinputlisting{图论/LCA/树剖法.tex}
\subsection{次小生成树}
\subsubsection{kruskal+lca}
\lstinputlisting{图论/次小生成树/kruskal+lca.tex}
\subsection{带花树}
\subsubsection{一般图最大匹配}
\lstinputlisting{图论/带花树/一般图最大匹配.tex}
\subsubsection{一般图最大权匹配}
\lstinputlisting{图论/带花树/一般图最大权匹配.tex}
\subsection{矩阵树定理}
\subsubsection{总结}
\lstinputlisting{图论/矩阵树定理/总结.tex}
\subsubsection{无向图生成树个数}
\lstinputlisting{图论/矩阵树定理/无向图生成树个数.tex}
\subsection{判断完全图}
\subsubsection{判断完全图}
\lstinputlisting{图论/判断完全图/判断完全图.tex}
\subsection{树的直径}
\subsubsection{两次dfs}
\lstinputlisting{图论/树的直径/两次dfs.tex}
\subsection{最短路}
\subsubsection{Dijkstra堆优化}
\lstinputlisting{图论/最短路/Dijkstra堆优化.tex}
\subsubsection{Dijkstra配对堆}
\lstinputlisting{图论/最短路/Dijkstra配对堆.tex}
\subsection{最小mex生成树}
\subsubsection{最小mex生成树}
\lstinputlisting{图论/最小mex生成树/最小mex生成树.tex}
\section{动态规划}
\subsection{总结}
\lstinputlisting{动态规划/总结.tex}
\subsection{01背包}
\subsubsection{前k优解}
\lstinputlisting{动态规划/01背包/前k优解.tex}
\subsubsection{求最优解方案个数}
\lstinputlisting{动态规划/01背包/求最优解方案个数.tex}
\subsubsection{求恰好装满背包的最优解}
\lstinputlisting{动态规划/01背包/求恰好装满背包的最优解.tex}
\subsubsection{求具体方案}
\lstinputlisting{动态规划/01背包/求具体方案.tex}
\subsubsection{超大背包}
\lstinputlisting{动态规划/01背包/超大背包.tex}
\subsection{完全背包}
\subsubsection{求最优解方案数}
\lstinputlisting{动态规划/完全背包/求最优解方案数.tex}
\subsection{多重背包}
\subsubsection{总结}
\lstinputlisting{动态规划/多重背包/总结.tex}
\subsection{分组背包}
\subsubsection{总结}
\lstinputlisting{动态规划/分组背包/总结.tex}
\subsection{树形依赖背包}
\subsubsection{总结}
\lstinputlisting{动态规划/树形依赖背包/总结.tex}
\subsection{状压dp}
\subsubsection{总结}
\lstinputlisting{动态规划/状压dp/总结.tex}
\subsection{区间dp}
\subsection{数位dp}
\subsection{状压dp}
\subsubsection{总结}
\lstinputlisting{动态规划/状压dp/总结.tex}
\section{数据结构}
\subsection{CDQ分治}
\subsubsection{cdq}
\lstinputlisting{数据结构/CDQ分治/cdq.tex}
\subsubsection{数值删除、逆序对个数（排列）}
\lstinputlisting{数据结构/CDQ分治/数值删除、逆序对个数（排列）.tex}
\subsection{splay}
\subsubsection{1}
\lstinputlisting{数据结构/splay/1.tex}
\subsubsection{2}
\lstinputlisting{数据结构/splay/2.tex}
\subsection{dsu on tree}
\subsubsection{ccpc2020长春站F题}
\lstinputlisting{数据结构/dsu on tree/ccpc2020长春站F题.tex}
\subsubsection{CF208E}
\lstinputlisting{数据结构/dsu on tree/CF208E.tex}
\subsubsection{CF246E}
\lstinputlisting{数据结构/dsu on tree/CF246E.tex}
\subsubsection{CF375D}
\lstinputlisting{数据结构/dsu on tree/CF375D.tex}
\subsubsection{CF570D}
\lstinputlisting{数据结构/dsu on tree/CF570D.tex}
\subsubsection{CF600E}
\lstinputlisting{数据结构/dsu on tree/CF600E.tex}
\subsubsection{CF741D}
\lstinputlisting{数据结构/dsu on tree/CF741D.tex}
\subsubsection{CF1009F}
\lstinputlisting{数据结构/dsu on tree/CF1009F.tex}
\subsubsection{wannafly Day2 E 阔力梯的树}
\lstinputlisting{数据结构/dsu on tree/wannafly Day2 E 阔力梯的树.tex}
\subsubsection{洛谷P4149}
\lstinputlisting{数据结构/dsu on tree/洛谷P4149.tex}
\subsubsection{牛客练习赛60E 旗鼓相当的对手}
\lstinputlisting{数据结构/dsu on tree/牛客练习赛60E 旗鼓相当的对手.tex}
\subsection{单调栈}
\subsubsection{单调栈}
\lstinputlisting{数据结构/单调栈/单调栈.tex}
\subsection{单调队列}
\subsubsection{理想正方形}
\lstinputlisting{数据结构/单调队列/理想正方形.tex}
\subsection{第二分块}
\subsubsection{将区间内x改为y、区间第k大}
\lstinputlisting{数据结构/第二分块/将区间内x改为y、区间第k大.tex}
\subsubsection{区间大于x的数减去x、区间内x出现的次数}
\lstinputlisting{数据结构/第二分块/区间大于x的数减去x、区间内x出现的次数.tex}
\subsection{树状数组}
\subsubsection{二维树状数组}
\lstinputlisting{数据结构/树状数组/二维树状数组.tex}
\subsection{线段树}
\subsubsection{总结}
\lstinputlisting{数据结构/线段树/总结.tex}
\subsubsection{01序列、区间覆盖为0、区间覆盖为1、区间取反、区间1的个数、区间最大连续1的个数}
\lstinputlisting{数据结构/线段树/01序列、区间覆盖为0、区间覆盖为1、区间取反、区间1的个数、区间最大连续1的个数.tex}
\subsubsection{单点修改、区间重排是否在值域上连续}
\lstinputlisting{数据结构/线段树/单点修改、区间重排是否在值域上连续.tex}
\subsubsection{单点修改、区间最大连续子段和}
\lstinputlisting{数据结构/线段树/单点修改、区间最大连续子段和.tex}
\subsubsection{动态区间中位数}
\lstinputlisting{数据结构/线段树/动态区间中位数.tex}
\subsubsection{区间+k、区间最大连续子段和}
\lstinputlisting{数据结构/线段树/区间+k、区间最大连续子段和.tex}
\subsubsection{区间+k、区间最大值、区间最小值、区间和}
\lstinputlisting{数据结构/线段树/区间+k、区间最大值、区间最小值、区间和.tex}
\subsubsection{区间gcd}
\lstinputlisting{数据结构/线段树/区间gcd.tex}
\subsubsection{区间hash}
\lstinputlisting{数据结构/线段树/区间hash.tex}
\subsubsection{区间乘法}
\lstinputlisting{数据结构/线段树/区间乘法.tex}
\subsubsection{区间覆盖+查询}
\lstinputlisting{数据结构/线段树/区间覆盖+查询.tex}
\subsubsection{区间异或x、区间求和}
\lstinputlisting{数据结构/线段树/区间异或x、区间求和.tex}
\subsubsection{树上区间+k、区间×k、区间覆盖、区间立方和}
\lstinputlisting{数据结构/线段树/树上区间+k、区间×k、区间覆盖、区间立方和.tex}
\subsection{吉司机线段树}
\subsubsection{区间+k、区间覆盖、区间历史最大值}
\lstinputlisting{数据结构/吉司机线段树/区间+k、区间覆盖、区间历史最大值.tex}
\subsection{主席树}
\subsubsection{撤销X个操作(可撤销先前撤销的操作)}
\lstinputlisting{数据结构/主席树/撤销X个操作(可撤销先前撤销的操作).tex}
\subsubsection{区间出现次数大于某值的最小数}
\lstinputlisting{数据结构/主席树/区间出现次数大于某值的最小数.tex}
\subsubsection{区间第K大}
\lstinputlisting{数据结构/主席树/区间第K大.tex}
\subsubsection{区间内不同数的个数}
\lstinputlisting{数据结构/主席树/区间内不同数的个数.tex}
\subsubsection{区间内只出现过一次的数}
\lstinputlisting{数据结构/主席树/区间内只出现过一次的数.tex}
\subsubsection{区间询问最小不能被表示的数}
\lstinputlisting{数据结构/主席树/区间询问最小不能被表示的数.tex}
\subsubsection{区间众数}
\lstinputlisting{数据结构/主席树/区间众数.tex}
\subsubsection{子树中距离其不超过K的最小点权}
\lstinputlisting{数据结构/主席树/子树中距离其不超过K的最小点权.tex}
\subsection{树套树}
\subsubsection{单点修改、区间第k大}
\lstinputlisting{数据结构/树套树/单点修改、区间第k大.tex}
\subsubsection{数值删除、逆序对数（排列）}
\lstinputlisting{数据结构/树套树/数值删除、逆序对数（排列）.tex}
\subsection{普通并查集}
\subsubsection{路径压缩}
\lstinputlisting{数据结构/普通并查集/路径压缩.tex}
\subsubsection{按秩合并}
\lstinputlisting{数据结构/普通并查集/按秩合并.tex}
\subsubsection{启发式合并+路径压缩}
\lstinputlisting{数据结构/普通并查集/启发式合并+路径压缩.tex}
\subsection{种类并查集}
\subsection{可撤销并查集}
\subsubsection{可撤销并查集}
\lstinputlisting{数据结构/可撤销并查集/可撤销并查集.tex}
\subsubsection{加边、删边、判二分图}
\lstinputlisting{数据结构/可撤销并查集/加边、删边、判二分图.tex}
\subsubsection{加边、删边、判联通}
\lstinputlisting{数据结构/可撤销并查集/加边、删边、判联通.tex}
\subsection{可持久化并查集}
\subsubsection{总结}
\lstinputlisting{数据结构/可持久化并查集/总结.tex}
\subsubsection{可持久化并查集}
\lstinputlisting{数据结构/可持久化并查集/可持久化并查集.tex}
\subsection{带权并查集}
\subsubsection{带权并查集}
\lstinputlisting{数据结构/带权并查集/带权并查集.tex}
\subsection{双指针}
\subsubsection{szz}
\lstinputlisting{数据结构/双指针/szz.tex}
\section{字符串}
\subsection{字典树}
\subsubsection{指针版（释放内存）}
\lstinputlisting{字符串/字典树/指针版（释放内存）.tex}
\subsubsection{字典树}
\lstinputlisting{字符串/字典树/字典树.tex}
\subsection{字符串hash}
\subsubsection{总结}
\lstinputlisting{字符串/字符串hash/总结.tex}
\subsubsection{字符串hash}
\lstinputlisting{字符串/字符串hash/字符串hash.tex}
\subsubsection{二维hash、矩阵hash}
\lstinputlisting{字符串/字符串hash/二维hash、矩阵hash.tex}
\section{头脑风暴}
\subsection{dp合集}
\lstinputlisting{头脑风暴/dp合集}
\subsection{等差子序列}
\subsubsection{总结}
\lstinputlisting{头脑风暴/等差子序列/总结.tex}
\subsection{回文问题}
\subsubsection{寻找回文路径（AT）}
\lstinputlisting{头脑风暴/回文问题/寻找回文路径（AT）.tex}
\subsection{排列问题}
\subsubsection{字典序最小的（排列&子序列）}
\lstinputlisting{头脑风暴/排列问题/字典序最小的（排列&子序列）.tex}
\subsection{区间多次询问问题}
\subsubsection{从区间中选出两个数使得异或值最大}
\lstinputlisting{头脑风暴/区间多次询问问题/从区间中选出两个数使得异或值最大.tex}
\subsection{数论只会gcd？}
\subsubsection{1.求给定范围内gcd为素数的数对有多少？}
\lstinputlisting{头脑风暴/数论只会gcd？/1.求给定范围内gcd为素数的数对有多少？.tex}
\subsubsection{2.求给定范围内gcd为素数的数对有多少？}
\lstinputlisting{头脑风暴/数论只会gcd？/2.求给定范围内gcd为素数的数对有多少？.tex}
\subsubsection{3.单点乘法取模+整体gcd}
\lstinputlisting{头脑风暴/数论只会gcd？/3.单点乘法取模+整体gcd.tex}
\subsubsection{4.给定c,d,x求满足c×lcm(a,b) - d×gcd(a,b) = x 的 (a,b) 的对数}
\lstinputlisting{头脑风暴/数论只会gcd？/4.给定c,d,x求满足c×lcm(a,b) - d×gcd(a,b) = x 的 (a,b) 的对数.tex}
\subsection{以子串为单位的倍增思想}
\subsubsection{以子串为单位的倍增思想}
\lstinputlisting{头脑风暴/以子串为单位的倍增思想/以子串为单位的倍增思想.tex}
\subsection{最大字段和问题}
\subsubsection{从序列中选出K个子串使得子串和最大}
\lstinputlisting{头脑风暴/最大字段和问题/从序列中选出K个子串使得子串和最大.tex}
\section{杂项}
\subsection{素数表}
\lstinputlisting{杂项/素数表.tex}
\subsection{小tricks}
\lstinputlisting{杂项/小tricks.tex}
\subsection{玄学优化}
\lstinputlisting{杂项/玄学优化.tex}
\subsection{头文件}
\lstinputlisting{杂项/头文件.tex}
\section{赛前看一看}
\subsection{错误征集}
\lstinputlisting{赛前看一看/错误征集.tex}
\subsection{运行结果和自己预期的不一样？}
\lstinputlisting{赛前看一看/运行结果和自己预期的不一样？.tex}
\end{document}